package apig.client.serviface;

import java.util.*;

import com.google.gwt.user.client.rpc.*;

public interface ApigService extends RemoteService {
	//
	public HashMap<Group, List<Student>> getAllStuds()
			throws DatabaseException, AccessException;

	// code
	public List<Code> getCodes(CodeQuery cq) throws DatabaseException,
			AccessException;

	public HashMap<Integer, List<Hypo>> getHypos(int codeId)
			throws DatabaseException, AccessException;

	public String getCodeOwner(int codeId) throws DatabaseException,
			AccessException;

	public Code getCode(int codeId) throws DatabaseException, AccessException;

	// syllabus
	public void assignDiscipline(int discId, int groupId, boolean assign)
			throws DatabaseException, AccessException;

	public void createDiscipline(Discipline d, int ownerId)
			throws DatabaseException, AccessException;

	public void createLab(Lab l) throws DatabaseException, AccessException;

	public void removeLab(int labId) throws DatabaseException, AccessException;

	public void removeDiscipline(int discId) throws DatabaseException,
			AccessException;

	public List<Discipline> getStudDisciplines(int studId)
			throws DatabaseException, AccessException;

	public List<Lab> getDisciplineLabs(int disciplineId)
			throws DatabaseException, AccessException;

	public HashMap<Discipline, List<Lab>> getStudLabs(int studId)
			throws DatabaseException, AccessException;

	// user

	public UserData getUserData() throws DatabaseException, AccessException;

	public Boolean doLogin(String login, String pass) throws DatabaseException,
			AccessException;

	public Boolean doLogout() throws DatabaseException, AccessException;
}
